//
//  main.c
//  heightChecker
//
//  Created by edz on 2020/7/3.
//  Copyright © 2020 edz. All rights reserved.
//

#include <stdio.h>

int main(int argc, const char * argv[]) {
    // insert code here...
    printf("Hello, World!\n");
    return 0;
}
/*
 学校在拍年度纪念照时，一般要求学生按照 非递减 的高度顺序排列。

 请你返回能让所有学生以 非递减 高度排列的最小必要移动人数。

 注意，当一组学生被选中时，他们之间可以以任何可能的方式重新排序，而未被选中的学生应该保持不动。

  

 示例：

 输入：heights = [1,1,4,2,1,3]
 输出：3
 解释：
 当前数组：[1,1,4,2,1,3]
 目标数组：[1,1,1,2,3,4]
 在下标 2 处（从 0 开始计数）出现 4 vs 1 ，所以我们必须移动这名学生。
 在下标 4 处（从 0 开始计数）出现 1 vs 3 ，所以我们必须移动这名学生。
 在下标 5 处（从 0 开始计数）出现 3 vs 4 ，所以我们必须移动这名学生。
 */

int heightChecker(int* heights, int heightsSize){
    int *add=calloc(heightsSize,sizeof(int));
    int i,j,temp,num=0;
    for(i=0;i<heightsSize;i++){
        add[i]=heights[i];
    }
    for(i=0;i<heightsSize;i++){
        for(j=0;j<heightsSize-i-1;j++){
            if(heights[j]>heights[j+1]){
                temp=heights[j];
                heights[j]=heights[j+1];
                heights[j+1]=temp;
            }
        }
    }
    for(i=0;i<heightsSize;i++){
        if(add[i]!=heights[i])
            num++;
    }
    return num;
}
